/**
 * <p>
 *  用一句话描述该文件做什么
 * </p>
 * @author:  皮勉 2014年3月12日 下午8:08:16 
 * @version    V1.0        
 *
 * Modification  History:
 * Date         Author        Version        Discription
 * -----------------------------------------------------------------------------------
 * 2014年3月12日       wu.zh          1.0             1.0
 * Why & What is modified: <修改原因描述>
 */

package com.example.mvp.mvppromote.utils;

import android.app.Activity;
import android.content.Context;
import android.util.DisplayMetrics;

/**
 * <p>
 * 功能 Android px、dp、sp之间相互转换
 * </p>
 * 
 * <p>
 * Copyright 掌动乾坤科技公司 2014 All right reserved.
 * </p>
 * 
 * @author 皮勉 时间 2014年3月12日 下午8:08:16
 * @version 1.0 </br> 最后修改人 无
 */
public class DisplayUtil {

	/**
	 * 将px值转换为dip或dp值，保证尺寸大小不变
	 * 
	 * @param pxValue
	 * @param scale
	 *            （DisplayMetrics类中属性density）
	 * @return
	 */
	public static int px2dip(Context context, float pxValue) {
		final float scale = context.getResources().getDisplayMetrics().density;
		return (int) (pxValue / scale + 0.5f);
	}

	/**
	 * 将dip或dp值转换为px值，保证尺寸大小不变
	 * 
	 * @param dipValue
	 * @param scale
	 *            （DisplayMetrics类中属性density）
	 * @return
	 */
	public static int dip2px(Context context, float dipValue) {
		final float scale = context.getResources().getDisplayMetrics().density;
		return (int) (dipValue * scale + 0.5f);
	}

	/**
	 * 将px值转换为sp值，保证文字大小不变
	 * 
	 * @param pxValue
	 * @param fontScale
	 *            （DisplayMetrics类中属性scaledDensity）
	 * @return
	 */
	public static int px2sp(Context context, float pxValue) {
		final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
		return (int) (pxValue / fontScale + 0.5f);
	}

	/**
	 * 将sp值转换为px值，保证文字大小不变
	 * 
	 * @param spValue
	 * @param fontScale
	 *            （DisplayMetrics类中属性scaledDensity）
	 * @return
	 */
	public static int sp2px(Context context, float spValue) {
		final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
		return (int) (spValue * fontScale + 0.5f);
	}
	
	/**
	 * 获得屏幕的宽度
	 * @param context
	 * @return
	 */
	public static int getDisplayWidthPixels(Activity context) {
		DisplayMetrics dm = new DisplayMetrics();
		if(context!=null){
		context.getWindowManager().getDefaultDisplay().getMetrics(dm);}
		int widthPixels = dm.widthPixels;
		return widthPixels;
	}
	/**
	 * 获得屏幕的高度
	 * @param context
	 * @return
	 */
	public static int getDisplayHeightPixels(Activity context) {
		DisplayMetrics dm = new DisplayMetrics();
		if(context!=null){
		context.getWindowManager().getDefaultDisplay().getMetrics(dm);}
		int widthPixels = dm.heightPixels;
		return widthPixels;
	}
}
